/**
 * 1. 类中的构造器不是必须写的，要对实例进行一些初始化的操作，如添加指定属性时才写
 * 2. 如果A类继承B类，且A类中写了构造器，则super方法必须调用
 * 3. 类中定义的方法，都是放在了类的原型对象上，供实例去使用
 */
class Person{
    constructor(name,age){
        this.name = name;
        this.age = age;
    }
    sayHi(){
        console.log(`我叫${this.name},今年${this.age}岁`);
    }
}
class Student extends Person{
    constructor(name,age,grade){
        super(name,age);//super必须写到最前面，引入继承的属性
        this.grade = grade;
    }
    //重写从父类继承过来的方法
    sayHi(){
        console.log(`我叫${this.name},今年${this.age}岁,读${this.grade}`);
    }
    //添加自身新的方法
    study(){
        console.log(`我很努力`);
    }
}
const lzy = new Student('李梓源',18,'大四');
lzy.sayHi();

class Car{
    constructor(name,price){
        this.name = name;
        this.price = price;
    }
    a=1;
    wheel=4;//  (?成员属性)，在实例对象上
    static demo = 100;//静态属性，在类里面
}

const c1 = new Car('奔驰c63',199);
console.log(c1);
console.log(Car.demo);